const db = require('../db/index')

exports.addArticle = (req,res) => {
  console.log(req.body) //文本类型的数据
  console.log('--------分割线----------')
  console.log(req.file)

  // 手动判断是否上传了文章封面
  if(!req.file || req.file.fieldname !== 'cover_img') return res.cc('文章封面是必选参数')
  
  // todo:表单数据合法，继续后面的处理流程

  const path = require('path')

  const articleInfo = {
    //标题内容,状态，所属分类的id
    ...req.body,
    // 文章封面在服务器段存放的路径
    // 采用blob二进制格式
    cover_img:path.join('/uploads',req.file.filename),
    // 文章发布时间
    pub_date:new Date(),
    // 文章作者的id
    author_id: req.user.id
  }

  // const sql = `insert into ev_articles set ? `
  const sql = `insert into ev_articles set ? `
  db.query(sql,articleInfo,(err,results) => {
    if(err) return res.cc(err)

    if(results.affectedRows !== 1) return res.cc('发布文章失败')
    // 发布文章成功
  res.cc('发布文章成功',0)
  })
}

// 查看文章列表

exports.getArticle = (req,res) => {
  const sql = `select * from ev_articles where is_delete=0 order by id asc`
  db.query(sql,(err,results) => {
    if(err) return res.cc(err)

    res.send({
      status: 0,
      message: '获取文章列表成功!',
      data: results,
    })
  })
}


// 根据Id删除文章数据  

exports.deleteById = (req,res) => {
  const sql = `update ev_articles set is_delete=1 where Id=?`
  db.query(sql,req.params.Id,(err,results) => {
    if(err) return res.cc(err)

    if(results.affectedRows !==1) return res.cc('删除文章失败')
    
    // 删除文章分类成功
    res.cc('删除文章成功!',0)
  })
}

// 根据Id获取文章数据
exports.getArticleById = (req,res) => {
  const sql = `select * from ev_articles where Id=?`
  db.query(sql,req.params.Id,(err,results) => {
    if(err) return res.cc(err)
    
    if(results.length !==1) return res.cc('获取文章数据失败!')
    
    res.send({
      status: 0,
      success: true,
      message: '获取文章数据成功！',
      data: results[0]
    })
  })
}


// 根据Id更新文章信息

exports.editArticle = (req,res) => {
  // 进行查重操作
  const path = require('path')
  const sqlStr = `select * from ev_articles where Id=? and title=?`
  db.query(sqlStr,[req.body.Id,req.body.title],(err,results) => {
    if(err) return res.cc(err)

    if(results[0]) {
      return res.cc('文章标题不能重复')
    }
    if(!req.file|| req.file.fieldname !== 'cover_img') return res.cc('文章封面必须是可选参数!')
    
    const articleInfo = {
      ...req.body,
      cover_img: path.join('/uploads',req.file.filename),
       // 文章封面在服务器段存放的路径
    // 采用blob二进制格式
    cover_img:path.join('/uploads',req.file.filename),
    // 文章发布时间
    pub_date:new Date(),
    // 文章作者的id
    author_id: req.user.id
    }

    const sql = `update ev_articles set ? where Id=?`
    db.query(sql,[articleInfo,req.body.Id],(err,results) => {
      if(err) return res.cc(err)
      
      if(results.affectedRows !==1) return res.cc('文章编辑失败')
        res.cc('编辑文章成功！',0)
    })
  })
}



